package cn.tedu.jdbc;

import java.sql.*;

/**
 * 修改所有的王五
 */
public class JDBCTest02 {
    public static void main(String[] args) {
        // 初始化数据库连接变量
        Connection conn = null;
        Statement stmt = null;
        //1.注册驱动
        try {
            // 创建并注册JDBC驱动实例
            Driver driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);

            //2.获取链接
          /*  // 定义数据库连接的URL，包含数据库的协议、地址、端口和数据库名称
            String url = "jdbc:mysql://localhost:3306/jdbc";
            // 定义数据库的用户名
            String user = "root";
            // 定义数据库的密码
            String password = "root";*/

            // 使用DriverManager获取数据库连接
            // 这里的注释解释了为什么需要获取数据库连接：为了与数据库建立通信，执行SQL语句
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "root");

            // 打印数据库连接对象
            // 这个打印语句用于调试目的，确认是否成功建立了数据库连接
            System.out.println("connection =" + conn);
            //3.获取数据库操作对象
            // 创建一个Statement对象，用于执行SQL语句
            stmt = conn.createStatement();
            // 打印Statement对象，用于调试和日志记录
            System.out.println("statement =" + stmt);
            //4.执行SQL语句
            //改
            // 更新用户信息的SQL语句
            // 此处具体更新了用户表中的哪些字段：姓名、密码、真实姓名、性别、电话
            // 条件是用户名称为'wangwu'，以定位到具体需要更新的记录
            String sql = "update t_user set name = 'zhaoxin'," +
                    "password ='123456'," +
                    "realname = '赵信'," +
                    "gender = '男'," +
                    "tel = '1122334455' " +
                    "where name = 'wangwu'";
            // 执行更新操作，返回值为受影响的行数
            int count = stmt.executeUpdate(sql);
            // 打印更新操作影响的行数
            System.out.println("修改了" + count + "条数据");


        } catch (SQLException e) {
            // 当发生SQLException时，打印异常的详细信息
            e.printStackTrace();
        } finally {
            // 无论是否发生异常，都执行的代码块
            // 通常用于释放资源，如关闭数据库连接等
            //6.释放资源
            // 关闭数据库操作对象stmt
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    // 打印stmt关闭时发生的异常信息
                    e.printStackTrace();
                }
            }

            // 关闭数据库连接对象conn
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // 打印conn关闭时发生的异常信息
                    e.printStackTrace();
                }
            }
        }
    }
}

